一、塊級元素(block-level elememts),特點:
* 自動換行
* 能設置寬高
* margin和padding上下左右的值都可以設置
二、行內元素(inline elememts),特點:
* 不會自動進行換行
* 設置寬高無效
* padding上下左右都可以設置;但margin左右值有效,上下值無效
三、注意「塊級元素」和CSS「display:block」的元素不是相同一個概念。例如:默認為display:list-item;默認為display:table,但他們都是塊級元素。CSS中的display屬性是用來設定網頁元素的顯示類型。
四、塊級元素的width、流體布局的寬度分離原則,與box-sizing: border-box:
塊級元素預設是width:auto。在张鑫旭的「CSS世界」書中提到"外部尺寸”的塊級元素一旦設置了寬度,流動性就丟失了。所謂流動性,是一種margin/border/padding和content內容區域自動分配水準空間的機制。
可實驗一個元素裡面放置多於一行瀏覽器頁面寬度的文字數量,並設置padding: 0 20px; background-color: #ff9;可看出p段落可依據瀏覽器寬度大小變化自適應,但如果添加上了width: 100%;則會發現出現了x方向的捲軸。這是因padding左右寬度導致。
這延伸出「寬度分離原則」,指塊級元素的width與margin/border/padding分二層設置,外層設置寬度;內層設置margin/border/padding,可保留塊級元素流動特性。當然上面的例子也可設置box-sizing: border-box,自動扣除padding的寬度,但如果遇到需將padding改為margin或二者並用的情況下,box-sizing: border-box就不適用了。因此,「寬度分離原則」的應用與觀念是很實用的。
五、 相關連結&參考內容:
* MDN塊級元素列表
* MDN display
* CSDN党小羽-display:list-item
* 张鑫旭的个人博客_web前端技术文章_深入理解CSS的width:auto